home *** CD-ROM | disk | FTP | other *** search
/ Champak 29 / Volume 29 - JOGO DISK .iso / Games / jungle_adventure.swf / scripts / __Packages / GDK / EventSubscriber.as < prev    next >
Text File  |  2006-11-29  |  3KB  |  107 lines

  1. class GDK.EventSubscriber
  2. {
  3.    static var CALL_LAST = 1;
  4.    static var EVENT_NAME_AS_ARGUMENT = 2;
  5.    function EventSubscriber(obj)
  6.    {
  7.       GDK.EventSubscriber.initObject(obj);
  8.    }
  9.    static function initObject(obj)
  10.    {
  11.       obj.addEvent = GDK.EventSubscriber.prototype.addEvent;
  12.       obj.removeEvent = GDK.EventSubscriber.prototype.removeEvent;
  13.       obj.sendEvent = GDK.EventSubscriber.prototype.sendEvent;
  14.       obj.removeAllEvents = GDK.EventSubscriber.prototype.removeAllEvents;
  15.       obj.mappedEvents = {};
  16.    }
  17.    function addEvent(name, method, target, options)
  18.    {
  19.       if(!target)
  20.       {
  21.          target = this;
  22.       }
  23.       var _loc2_ = undefined;
  24.       if(!(_loc2_ = this.mappedEvents[name]))
  25.       {
  26.          var _loc0_ = null;
  27.          _loc2_ = this.mappedEvents[name] = [];
  28.       }
  29.       var _loc3_ = {t:target,fn:method,n:(options & GDK.EventSubscriber.EVENT_NAME_AS_ARGUMENT) > 0};
  30.       if((options & 1) == 0)
  31.       {
  32.          _loc2_.push(_loc3_);
  33.       }
  34.       else
  35.       {
  36.          _loc2_.unshift(_loc3_);
  37.       }
  38.    }
  39.    function sendEvent(name)
  40.    {
  41.       var _loc4_ = undefined;
  42.       if(_loc4_ = this.mappedEvents[name])
  43.       {
  44.          var _loc5_ = arguments.slice(1);
  45.          var _loc3_ = _loc4_.length;
  46.          while((_loc3_ = _loc3_ - 1) > -1)
  47.          {
  48.             _loc4_[_loc3_].fn.apply(_loc4_[_loc3_].t,!_loc4_[_loc3_].n ? _loc5_ : arguments);
  49.          }
  50.       }
  51.    }
  52.    function removeEvent(name, method, target)
  53.    {
  54.       var _loc3_ = undefined;
  55.       if(name == null || !(_loc3_ = this.mappedEvents[name]))
  56.       {
  57.          return undefined;
  58.       }
  59.       var _loc2_ = _loc3_.length;
  60.       if(!target)
  61.       {
  62.          while((_loc2_ = _loc2_ - 1) > -1)
  63.          {
  64.             if(_loc3_[_loc2_].fn == method)
  65.             {
  66.                _loc3_.splice(_loc2_,1);
  67.             }
  68.          }
  69.       }
  70.       else if(!method)
  71.       {
  72.          while((_loc2_ = _loc2_ - 1) > -1)
  73.          {
  74.             if(_loc3_[_loc2_].t == target)
  75.             {
  76.                _loc3_.splice(_loc2_,1);
  77.             }
  78.          }
  79.       }
  80.       else
  81.       {
  82.          while((_loc2_ = _loc2_ - 1) > -1)
  83.          {
  84.             if(_loc3_[_loc2_].fn == method && _loc3_[_loc2_].t == target)
  85.             {
  86.                _loc3_.splice(_loc2_,1);
  87.             }
  88.          }
  89.       }
  90.    }
  91.    function removeAllEvents(target)
  92.    {
  93.       var _loc3_ = undefined;
  94.       for(var _loc5_ in this.mappedEvents)
  95.       {
  96.          var _loc2_ = _loc3_ = this.mappedEvents[_loc5_].length;
  97.          while((_loc2_ = _loc2_ - 1) > -1)
  98.          {
  99.             if(_loc3_[_loc2_].t == target)
  100.             {
  101.                _loc3_.splice(_loc2_);
  102.             }
  103.          }
  104.       }
  105.    }
  106. }
  107.